home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib07.dsk / AIM FILE UTILITY.bas next >
BASIC Source File  |  2023-02-26  |  4KB  |  106 lines

  1. 1  REM  *******************************
  2. 2  REM  ** AIM FILE UTILITY PROGRAM  **
  3. 3  REM  **    BY T.C. BRICKEY        **
  4. 4  REM  **   COPYRIGHT (C) 1981 BY   **
  5. 5  REM  **     MICRO-SPARC, INC.     **
  6. 6  REM  **     LINCOLN, MA 01773     **
  7. 7  REM  *******************************
  8. 9  TEXT : HOME : VTAB 3: HTAB 17: PRINT "APPLE ]["
  9. 10  VTAB 5: HTAB 5: PRINT "** AIM FILE CONVERSION PROGRAM **"
  10. 15  VTAB 8: INPUT "NAME OF FILE TO CONVERT ? ";G$:H$ = G$ + CHR$(2)
  11. 20  VTAB 11: HTAB 6: PRINT "ORIGINAL IN SLOT # ? ";: GET S1$: PRINT S1$:S1 =  VAL(S1$): IF S1 <1  OR S1 >7  THEN 20
  12. 25  VTAB 12: HTAB 17: PRINT "DRIVE # ? ";: GET D1$: PRINT D1$:D1 =  VAL(D1$): IF D1 <1  OR D1 >2  THEN 25
  13. 30  VTAB 13: HTAB 5: PRINT "DUPLICATE IN SLOT # ? ";: GET S2$: PRINT S2$:S2 =  VAL(S2$): IF S2 <1  OR S2 >7  THEN 30
  14. 35  VTAB 14: HTAB 17: PRINT "DRIVE # ? ";: GET D2$: PRINT D2$:D2 =  VAL(D2$): IF D2 <1  OR D2 >2  THEN 35
  15. 40  VTAB 17: HTAB 4: PRINT "VERIFY CORRECT (Y/N) ? ";: GET V$: PRINT V$: IF V$ = "Y"  THEN 100
  16. 45  IF V$ < >"Y"  THEN 40
  17. 100  REM  VARIABLES FOR NEW FILES
  18. 105 D$ =  CHR$(4)
  19. 110  PRINT D$"OPEN ";H$;",S";S1;",D";D1
  20. 115  PRINT D$"READ ";H$
  21. 120  INPUT X1: INPUT X2
  22. 125  DIM M$(X1 +1),M(X1 +1),P$(X1 +1)
  23. 130  FOR J = 1 TO X1: INPUT M$(J): INPUT M(J)
  24. 135  NEXT 
  25. 140  PRINT D$"CLOSE"
  26. 145  TEXT : HOME : VTAB 5: IF X1 =  >12  THEN  VTAB 2
  27. 150  PRINT "THERE ARE ";X1;" FIELDS IN THIS FILE": PRINT "THEIR NAMES/LENGTHS ARE:"
  28. 155  FOR J = 1 TO X1: VTAB 8 +J: IF X1 =  >12  THEN  VTAB 4 +J
  29. 160  HTAB 4: PRINT M$(J);
  30. 165  IF M(J) <100  AND M(J) =  >10  THEN  HTAB 20: GOTO 175
  31. 170  IF M(J) <10  THEN  HTAB 21
  32. 175  PRINT M(J): NEXT 
  33. 180  VTAB 23: FLASH : PRINT "ESC";: NORMAL : PRINT " TO CHANGE - ";: FLASH : PRINT "C/R";: NORMAL : PRINT " TO SELECT NEXT ITEM"
  34. 185  FOR J = 1 TO X1: VTAB 8 +J: IF X1 =  >12  THEN  VTAB 4 +J
  35. 190  HTAB 3: GET V$
  36. 195  IF V$ =  CHR$(27)  THEN  INPUT M$(J): GOTO 210
  37. 200  IF V$ =  CHR$(13)  THEN 230
  38. 205  GOTO 190
  39. 210  VTAB 8 +J: HTAB 19: IF X1 =  >12  THEN  VTAB 4 +J
  40. 215  INPUT M(J)
  41. 220  IF J = X1  THEN 265
  42. 225  NEXT 
  43. 230  VTAB 8 +J: HTAB 19: IF X1 =  >12  THEN  VTAB 4 +J
  44. 235  GET V$
  45. 240  IF V$ =  CHR$(27)  AND J = X1  THEN  INPUT M(J): GOTO 265
  46. 245  IF V$ =  CHR$(13)  AND J = X1  THEN 265
  47. 250  IF V$ =  CHR$(27)  THEN  INPUT M(J): NEXT 
  48. 255  IF V$ =  CHR$(13)  THEN  NEXT 
  49. 260  GOTO 230
  50. 265  IF X1 = 16  THEN 300
  51. 270  HOME : VTAB 8: PRINT "DO YOU WISH TO ADD A FIELD Y/N: ";: GET V$: PRINT V$
  52. 275  IF V$ =  CHR$(89)  THEN 290
  53. 280  IF V$ =  CHR$(78)  THEN 300
  54. 285  GOTO 265
  55. 290  VTAB 10: HTAB 5: INPUT "FIELD NAME: ";M$(X1 +1)
  56. 295  VTAB 12: HTAB 9: INPUT "LENGTH: ";M(X1 +1)
  57. 300  REM  SET-UP NEW FILE
  58. 305  TEXT : HOME : VTAB 10: HTAB 10: PRINT "[ WORKING ON FILES ]": PRINT : HTAB 10: PRINT "[ PLEASE STANDY-BY ]"
  59. 310 X3 = X1
  60. 315  IF V$ = "Y"  THEN X3 = X1 +1
  61. 320  FOR J = 1 TO X3:T = T +M(J) +1: NEXT : PRINT 
  62. 325 F$ = G$:I$ = H$: IF S1 = S2  AND D1 = D2  THEN F$ = "FILE XZXZXZ":I$ = F$ + CHR$(2)
  63. 330  PRINT D$"OPEN ";I$;",S";S2;",D";D2
  64. 335  PRINT D$"WRITE ";I$
  65. 340  PRINT X3: PRINT T
  66. 345  FOR J = 1 TO X3: PRINT M$(J): PRINT M(J): NEXT 
  67. 350  PRINT D$"CLOSE"
  68. 500  REM  READ DATA
  69. 505 X = 0
  70. 510  PRINT D$"OPEN";G$;",L";X2;",S";S1;",D";D1
  71. 515  PRINT D$"READ";G$;",R";X
  72. 520  INPUT HH
  73. 525  PRINT D$"CLOSE";G$
  74. 600  REM  WRITE DATA FILE
  75. 605  PRINT D$"OPEN";F$;",L";T;",S";S2;",D";D2
  76. 610  PRINT D$"WRITE";F$;",R";X
  77. 615  PRINT HH
  78. 620  PRINT D$"CLOSE";F$
  79. 700  REM  READ FILE INFO
  80. 705 X = 1
  81. 710  PRINT D$"OPEN";G$;",L";X2;",S";S1;",D";D1
  82. 715  PRINT D$"READ";G$;",R";X
  83. 720  FOR K = 1 TO X1
  84. 725  INPUT P$(K)
  85. 730  NEXT K
  86. 735  PRINT D$"CLOSE";G$
  87. 800  REM  WRITE NEW FILE
  88. 805  PRINT D$"OPEN";F$;",L";T;",S";S2;",D";D2
  89. 810  PRINT D$"WRITE";F$;",R";X
  90. 815  FOR K = 1 TO X3
  91. 820  PRINT P$(K)
  92. 825  NEXT K
  93. 830  PRINT D$"CLOSE";F$
  94. 900  REM  STEP X AND CHECK FOR END
  95. 905 X = X +1
  96. 910  IF X = (HH +1)  THEN 1000
  97. 915  GOTO 710
  98. 1000  REM  CHECK FILE NAMES
  99. 1005  IF F$ = G$  THEN 1040
  100. 1010  PRINT D$"UNLOCK ";H$
  101. 1015  PRINT D$"DELETE ";H$
  102. 1020  PRINT D$"DELETE ";G$
  103. 1025  PRINT D$"RENAME ";I$;",";H$
  104. 1030  PRINT D$"RENAME ";F$;",";G$
  105. 1035  PRINT D$"LOCK ";H$
  106. 1040  HOME : VTAB 10: HTAB 5: PRINT "NEW FILES ARE READY FOR USE": PRINT : PRINT "GOOD BYE.....": END